Graphics remoting systems allow computing device network clients to connect to a remote server (also referred to as a hosting server or host) and receive a visual representation of at least some of the graphics being displayed at or output by the server. Often the network client can display all the graphical output associated with the session. Likewise, the client may be allowed to interact with the session, injecting user input, generated from devices such as a mouse or keyboard connected to the client, into the server session.
Graphical applications, such as video games, can request displaying complex graphics structures, such as textures and surfaces, on screen. How these graphics structures are displayed by a graphical user interface (GUI) system (also referred to as a window system such as X Window System™) depends on the display resolution. When an application desires to change the display resolution, it sends a command to the window system.
When the display resolution changes, typically the graphics structures have to be redrawn differently. Sometimes, an application may also desire to use different graphics structures. Currently, when the display resolution changes, the window system notifies a graphics driver regarding the change of display resolution. The window system discards all graphics structures (e.g., textures) and notifies the applications of the display resolution changed. The applications have to send all graphics structures which are then re-rendered by the graphics driver. This works relatively well for the local window system.
However, in a graphics remoting configuration, when the display resolution changes, an amount of data exchanged between a local system and a remote system will be relatively large since all graphics structures have to be resent from a hosting server to a client.